package controller.commoncontroller;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JOptionPane;

import view.editorview.EditorArea;

import model.editormodel.EditorModel;

/**
 * Listener der auf dem Button zum ausrichten der Elemente am Raster liegt.
 * 
 * @author Team Locsi
 * 
 */
public class RasterElementsListener implements ActionListener {

	/**
	 * Referenz auf die EditorArea auf der die Elemente liegen
	 */
	private EditorArea editorArea;

	/**
	 * Referenz auf das EditorModel bei dem sich die Positionen der Elemente
	 * eventuell aendern
	 */
	private EditorModel eModel;

	/**
	 * Konstruktor der ein neues <code>RasterElementsListener</code> - Objekt
	 * erzeugt.
	 * 
	 * @param eArea
	 *            <code>EditorArea</code> - Referenz auf die EditorArea
	 * @param eModel
	 *            <code>EditorModel</code> - Referenz auf das EditorModel
	 */
	public RasterElementsListener(EditorArea eArea, EditorModel eModel) {
		this.editorArea = eArea;
		this.eModel = eModel;
	}

	/**
	 * Diese Methode stoesst das EditorModel an die Bauteile am Raster
	 * auszurichten, dies ist nur moeglich wenn sich keine Bauteile schneiden.
	 */
	@Override
	public void actionPerformed(ActionEvent e) {

		// wenn sich Bauteile schneiden wird dies dem Benutzer mitgeteilt
		if (editorArea.positioningToRaster()) {
			JOptionPane
					.showMessageDialog(null,
							"Ausrichten am Raster nicht möglich, da sich Bauteile überschneiden würden");
		}
		eModel.positioningToRaster(!editorArea.positioningToRaster());
	}
}
